package com.drakulo.hi.logic.actors;

import java.util.HashMap;
import java.util.Map;

import com.dk.hi.core.actor.Attribute;
import com.dk.hi.core.actor.Lineament;

public class HeroFactory {
	private static final String FACES_FOLDER = "data/faces/";

	public static Hero createAnna() {
		// Face face = new Face(FACES_FOLDER + "Actor1.png", 1, 0);
		// Hero h = new Hero("Anna", getDefaultLineaments(),
		// getDefaultAttributes(), face, Job.MAGUS);
		// h.setInventory(new Inventory());
		// initDefaults(h);
		return null;
	}

	public static Hero createTeyrak() {
		// Face face = new Face(FACES_FOLDER + "Actor1.png", 0, 0);
		// Hero h = new Hero("Teyrak", getDefaultLineaments(),
		// getDefaultAttributes(), face, Job.WARRIOR);
		// h.setInventory(new Inventory());
		// initDefaults(h);
		return null;
	}

	private static Map<Attribute, Integer> getDefaultAttributes() {
		// Map<Attribute, Integer> attributes = new HashMap<Attribute,
		// Integer>();
		// attributes.put(Attribute.LIFE_PTS_MAX, 200);
		// attributes.put(Attribute.LIFE_PTS_CURRENT, 200);
		//
		// attributes.put(Attribute.SPELL_PTS_MAX, 200);
		// attributes.put(Attribute.SPELL_PTS_CURRENT, 200);
		//
		return null;
	}

	private static Map<Lineament, Integer> getDefaultLineaments() {
		Map<Lineament, Integer> lineaments = new HashMap<Lineament, Integer>();

		lineaments.put(Lineament.AGILITY, 10);
		lineaments.put(Lineament.INTELLIGENCE, 10);
		lineaments.put(Lineament.STRENGTH, 10);
		lineaments.put(Lineament.WISDOM, 10);

		return lineaments;
	}

	private static void initDefaults(Hero hero) {
		// switch (hero.getJob()) {
		// case MAGUS:
		// initHeroLineaments(hero, 10, 10, 20, 8, 15);
		// hero.setAttribute(Attribute.LIFE_PTS_CURRENT, 200);
		// hero.setAttribute(Attribute.LIFE_PTS_MAX, 200);
		// hero.setAttribute(Attribute.SPELL_PTS_CURRENT, 350);
		// hero.setAttribute(Attribute.SPELL_PTS_MAX, 350);
		// hero.setAttribute(Attribute.XP, 0);
		// break;
		// case WARRIOR:
		// initHeroLineaments(hero, 12, 10, 8, 20, 10);
		// hero.setAttribute(Attribute.LIFE_PTS_CURRENT, 400);
		// hero.setAttribute(Attribute.LIFE_PTS_MAX, 400);
		// hero.setAttribute(Attribute.SPELL_PTS_CURRENT, 50);
		// hero.setAttribute(Attribute.SPELL_PTS_MAX, 50);
		// hero.setAttribute(Attribute.XP, 0);
		// break;
		// }
	}

	private static void initHeroLineaments(Hero hero, Integer agility, Integer luck, Integer smartness, Integer strength, Integer wisdom) {
		// hero.setLineament(Lineament.AGILITY, agility);
		// hero.setLineament(Lineament.INTELLIGENCE, smartness);
		// hero.setLineament(Lineament.STRENGTH, strength);
		// hero.setLineament(Lineament.WISDOM, wisdom);
	}

}
